为一个盒子创建一个类。(爪哇)
嗨,我在班上布置了一个作业:
实现一个名为Box的类,该类将具有以下属性和方法: 整数长度、宽度、高度 字符串颜色
构造函数方法:
- 将3个整数初始化为10,8,6
- 将颜色初始化为“黑色”
- 4个属性中的每一个都有一个setter和getter方法
- 一种求盒子体积的方法
- 获取长方体表面积的方法(所有六个面)
我有我所有的长度、宽度和颜色的接受器和接受器。我现在唯一的问题是,如果我将值设置为不同的值,它将无法正确计算体积
它只接受初始化的值。有什么想法吗?下面是我的课程代码。我可以举个例子。设置长度(7),它不打印总数7*8*6,而是打印总数10*8*6
public class Box
{
private int height = 6;
public void se(int height){
this.height=height;
}
public int getHeight(){
return height;
}
private int width = 8;
public void setWidth(int width){
this.width=width;
}
public int getWidth(){
return width;
}
private int length= 10;
public void setLength(int length){
this.length=length;
}
public int getLength(){
return length;
}
private String color="Black";
public void setColor(String color){
this.color=color;
}
public String getColor(){
return color;
}
private int vol=length*width*height;
public void setVol(int vol){
this.vol=vol;
}
public int getVol(){
return vol;
}
}
# 1 楼答案
您需要为
vol
创建一个getter
函数例如
当然,中间
vol
的设置是不必要的。 你可以这可以确保当前
vol
的计算始终正确# 2 楼答案
去掉
vol
属性和setVol
setter;这不是该类规范的一部分,也是问题的根本原因。重写getVol
以根据每次调用时的长度、宽度和高度计算体积您当前的设计不起作用,因为每当
length
、width
或height
发生更改时,vol
不会重新计算。您可以保留当前的字段集,并重写维度设置器,以便在每次调用vol
属性时重新计算该属性。这将加快getVol
getter方法的速度,但代价是类设计更复杂,setter方法更慢。这是一个权衡,你可以做,也可以不做,这是你认为合适的。但是,您需要去掉setVol
方法,因为当您设置卷时,无法知道如何设置维度以使值一致